#ifndef SERVER_H_
#define SERVER_H_
#include <glib-object.h>
#include <gio/gio.h>

G_BEGIN_DECLS

#define CLPRS_CLIENT_SIGNAL_DISCONNECTED "disconnected"

#define CLPRS_SERVER_SIGNAL_CLIENT_CONNECTED    "client-connected"
#define CLPRS_SERVER_SIGNAL_CLIENT_DISCONNECTED "client-disconnected"
typedef struct RClient RClient;
typedef struct RClientPrivate RClientPrivate;

typedef struct RServer RServer;
typedef struct RServerPrivate RServerPrivate;

struct RServer {
	GObject         parent_instance;
	RServerPrivate *priv;
};

struct RClient {
	GObject         parent_instance;
	RClientPrivate *priv;
};

typedef struct
{
	GObjectClass parent_class;
	void (*disconnected)(RClient *client);
} RClientClass;

typedef struct
{
	GObjectClass parent_class;
	void (*client_connected)(RServer *server, RClient *client);
	void (*client_disconnected)(RServer *server, RClient *client);
} RServerClass;
GType r_server_get_type(void);

GType r_client_get_type(void);

#endif
